/**
 * @description 国际化
 */
export type LanguageType = "zh" | "en" | null;

/**
 * @description 系统主题
 */
export type ThemeType = "light" | "dark";

export type Any = any;

/**
 * @description 接口数据返回结果无data
 */
export interface Result {
  code: number;
  message: string;
}

/**
 * @description 接口数据返回结果有data
 */
export interface ResultData<T = Any> extends Result {
  data: T;
  total?: number;
}

/**
 * @description 布局大小
 */
export type AssemblySizeType = "small" | "default" | "large";

/**
 * @description 全局配置
 * @param {string|null} lang 当前系统语言
 * @param {string} sysPrimary 系统主题颜色
 * @param {string} menuPrimary 菜单主题
 * @param {boolean} isDark 是否深色主题
 * @param {boolean} isCollapse 菜单是否折叠
 * @param {boolean} breadcrumb 面包屑导航
 * @param {boolean} breadcrumbIcon 面包屑导航图标
 * @param {boolean} tabs 标签页
 * @param {boolean} tabsIcon 标签页图标
 * @param {AssemblySizeType} assemblySize 布局大小
 * @param {boolean} maximize 当前页是否全屏
 * @param {boolean} footer 页脚
 * @param {boolean} openDrawer 打开弹窗
 * @param {boolean} isPanorama 全景菜单
 */
export interface GlobalStoreConfig {
  lang: LanguageType;
  sysPrimary: string;
  menuPrimary: string;
  isDark: boolean | string;
  isCollapse: boolean;
  breadcrumb: boolean | string;
  breadcrumbIcon: boolean | string;
  tabs: boolean | string;
  tabsIcon: boolean | string;
  assemblySize: AssemblySizeType;

  // primary: string;
  maximize: boolean;
  footer: boolean;
  openDrawer: boolean;
  isPanorama: boolean;
}

/**
 * @description 分页
 */
export interface Page {
  pageNum: number;
  pageSize: number;
  total?: number;
}

export interface CustomProperty {
  [key: string]: Any;
}

export * from "./index.d";
export * from "./dept";
export * from "./dict";
export * from "./logininfor";
export * from "./operlog";
export * from "./post";
